#ifndef _UList_H_
#define _UList_H_

typedef int listItemType;
struct listNode;
typedef listNode* ptrType;

class Ulist
{
	protected:
		int size;
		ptrType Head;
		ptrType PtrTo(int Position)const;

	public:
		Ulist();
		Ulist(const Ulist& L);
		~Ulist();

		bool empty()const;
		int length()const;
		void insert(int NewPosition, listItemType NewItem, bool& Success);
		void push_back(listItemType NewItem, bool& Success);
		void eraser(int Position, bool& Success);
		
		listItemType& operator[](const int Position);
};

#endif
